/**
 * 响应的数据结构
 * @param code 响应状态码
 * @param message 描述
 * @param data 数据主体
 * @constructor
 */
 class Message {


    /**
     *
     * @param code
     * @param message
     * @param data
     */
    constructor(code, message, data) {
    //   this.code = (code !== 0 && !code) ? 1 : code;//默认为1
      this.code = code;
      this.message = message ? message : '';
      this.data = data ? data : null;
    }
  
    /**
     * 成功响应
     */
    static success(data) {
      var message = "处理成功";
      var data = data ? data : null;
      var code = 200;
      return new Message(code, message, data);
    }
  
    /**
     * 失败响应(服务器错误)
     */
    static error(data) {
      var message = "处理错误";
      var data = data ? data : null;
      var code = 500;    // 未知服务器错误
      return new Message(code, message, data);
    }

    /**
     * 失败响应(参数、验证错误)
     */
    static validateError(data) {
      var message = "参数错误";
      var data = data ? data : null;
      var code = 400;    // 参数错误
      return new Message(code, message, data);
    }

    /**
     * 自定义响应
     */
    static response(code, message, data){
        var data = data;
        var code = code;
        var message = message;
        return new Message(code, message, data);
    }

    /**
     * 处理成功和失败消息
     * @param err
     * @param result
     */
    // static handleResult(res, err, result) {
    //   if (err) return res.json(Message.errMessage(err))
    //   res.json(Message.successMessage(null, result));
    // }

    static ERROR_CONSTANT(){
      return "error"
    }
}
  
module.exports = Message;